﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using SisVenda.Web.messageBox;
using SisVenda.Web.Code;
using System.Data;
using SisVenda.Business;
using SisVenda.Data;
using SisVenda.Web.Vendedor.Fn;
using SisVenda.Web.Administrador.Fn;

namespace SisVenda.Web.Vendedor
{
    public partial class ManterVenda : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MessageBox.Include(this);
        }

        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            gvwListagem.DataBind();
        }

        protected void btnPesquisarClienteInsert_Click(object sender, EventArgs e)
        {
            GridView gvwListagemClienteInsert = (GridView)fvwVenda.FindControl("gvwListagemClienteInsert");
            gvwListagemClienteInsert.DataBind();
        }

        protected void ddlNumeroLinhasGrid_SelectedIndexChanged(object sender, EventArgs e)
        {
            gvwListagem.DataBind();
        }

        protected void ddlNumeroLinhasGridPesquisaClienteInsert_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridView gvwListagemClienteInsert = (GridView)fvwVenda.FindControl("gvwListagemClienteInsert");
            gvwListagemClienteInsert.DataBind();
        }

        protected void gvwListagem_DataBinding(object sender, EventArgs e)
        {
            gvwListagem.PageSize = Convert.ToInt16(ddlNumeroLinhasGrid.SelectedValue);
        }

        protected void gvwListagemClienteInsert_DataBinding(object sender, EventArgs e)
        {
            GridView gvwListagemClienteInsert = (GridView)fvwVenda.FindControl("gvwListagemClienteInsert");
            DropDownList ddlNumeroLinhasGridPesquisaClienteInsert = (DropDownList)fvwVenda.FindControl("ddlNumeroLinhasGridPesquisaClienteInsert");
            gvwListagemClienteInsert.PageSize = Convert.ToInt16(ddlNumeroLinhasGridPesquisaClienteInsert.SelectedValue);
        }

        protected void gvwListagem_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (fvwVenda.CurrentMode != FormViewMode.ReadOnly)
            {
                fvwVenda.ChangeMode(FormViewMode.ReadOnly);
            }
            fvwVenda.DataBind();
            FvwVendaItemExibirCampos();
        }

        protected void odsGridView_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            if ((tbxPesquisa.Text != "") && (ddlSituaçãoVenda.SelectedValue != "") && (ddlParametroPesquisa.SelectedValue != ""))
            {
                e.InputParameters["tipoConsulta"] = ddlParametroPesquisa.SelectedValue;
                e.InputParameters["parametroPesquisa"] = tbxPesquisa.Text;
                e.InputParameters["situacaoVenda"] = ddlSituaçãoVenda.SelectedValue;
            }
        }

        protected void odsGvwListagemClienteInsert_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            DropDownList ddlTipoConsultaClienteInsert = (DropDownList)fvwVenda.FindControl("ddlTipoConsultaClienteInsert");
            DropDownList ddlNumeroLinhasGridPesquisaClienteInsert = (DropDownList)fvwVenda.FindControl("ddlNumeroLinhasGridPesquisaClienteInsert");
            TextBox tbxParametroConsultaClienteInsert = (TextBox)fvwVenda.FindControl("tbxParametroConsultaClienteInsert");

            if ((tbxParametroConsultaClienteInsert.Text != "") && (ddlTipoConsultaClienteInsert.SelectedValue != "") && (ddlNumeroLinhasGridPesquisaClienteInsert.SelectedValue != ""))
            {
                e.InputParameters["tipoConsulta"] = ddlTipoConsultaClienteInsert.SelectedValue;
                e.InputParameters["parametroPesquisa"] = tbxParametroConsultaClienteInsert.Text;
            }
        }

        protected void odsFfwVenda_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            if (gvwListagem.SelectedDataKey != null)
                e.InputParameters["idVenda"] = gvwListagem.SelectedDataKey.Value;
        }

        protected void odsGvwItemVendaItem_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            GridView gv = (GridView)fvwVenda.FindControl("gvwItemVendaItem");
            if (gvwListagem.SelectedDataKey != null)
                e.InputParameters["idVenda"] = gvwListagem.SelectedDataKey.Value;

        }

        protected void odsParcelaItem_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            GridView gv = (GridView)fvwVenda.FindControl("gvwItemVendaItem");
            if (gvwListagem.SelectedDataKey != null)
                e.InputParameters["idVenda"] = gvwListagem.SelectedDataKey.Value;
        }

        protected void fvwVenda_ModeChanged(object sender, EventArgs e)
        {
            FvwVendaItemExibirCampos();
        }

        private void FvwVendaItemExibirCampos()
        {
            if (fvwVenda.CurrentMode == FormViewMode.ReadOnly)
            {
                try
                {
                    Label tipoPessoa = (Label)fvwVenda.FindControl("lblTipoPessoaItem");
                    if (tipoPessoa.Text.Equals("F"))
                    {
                        Label lblCPF_CNPJItem = (Label)fvwVenda.FindControl("lblCPF_CNPJItem");
                        TextBox tbxCPFItem = (TextBox)fvwVenda.FindControl("tbxCPFItem");
                        lblCPF_CNPJItem.Text = "CPF";
                        tbxCPFItem.Visible = true;
                    }
                    else
                    {
                        if (tipoPessoa.Text.Equals("J"))
                        {
                            Label lblCPF_CNPJItem = (Label)fvwVenda.FindControl("lblCPF_CNPJItem");
                            TextBox tbxCNPJItem = (TextBox)fvwVenda.FindControl("tbxCNPJItem");
                            lblCPF_CNPJItem.Text = "CNPJ";
                            tbxCNPJItem.Visible = true;
                        }
                    }
                }
                catch
                {
                }
            }

        }

        protected void fvwVenda_Load(object sender, EventArgs e)
        {
            FvwVendaItemExibirCampos();
        }

        protected void gvwListagemClienteInsert_SelectedIndexChanged(object sender, EventArgs e)
        {
            VendaFn venda = new VendaFn();
            GridView gvwListagemCliente = (GridView)fvwVenda.FindControl("gvwListagemClienteInsert");
            Pessoa pPessoa = venda.ObterObjetoPessoa(Convert.ToInt32(gvwListagemCliente.SelectedDataKey.Value));
            TextBox tbxCodigoClienteInsert = (TextBox)fvwVenda.FindControl("tbxCodigoClienteInsert");
            TextBox tbxClienteInsert = (TextBox)fvwVenda.FindControl("tbxClienteInsert");
            TextBox tbxCPF_CNPJInsert = (TextBox)fvwVenda.FindControl("tbxCPF_CNPJInsert");

            Label lblCPF_CNPJInsert = (Label)fvwVenda.FindControl("lblCPF_CNPJInsert");

            tbxCodigoClienteInsert.Text = pPessoa.IdPessoa.ToString();
            tbxClienteInsert.Text = pPessoa.Nome.ToString();
            if (pPessoa.TipoPessoa.ToString().Equals("F"))
            {
                tbxCPF_CNPJInsert.Text = pPessoa.CPF.ToString();
                lblCPF_CNPJInsert.Text = "CPF";
            }
            else
            {
                tbxCPF_CNPJInsert.Text = pPessoa.CNPJ.ToString();
                lblCPF_CNPJInsert.Text = "CNPJ";
            }
        }

        protected void btnConfirmarClienteInsert_Click(object sender, EventArgs e)
        {
            DropDownList ddlCategoriaVendaInsert = (DropDownList)fvwVenda.FindControl("ddlCategoriaVendaInsert");
            TextBox tbxCodigoVendaInsert = (TextBox)fvwVenda.FindControl("tbxCodigoVendaInsert");
            TextBox tbxCodigoClienteInsert = (TextBox)fvwVenda.FindControl("tbxCodigoClienteInsert");
            Button btnConfirmarClienteInsert = (Button)fvwVenda.FindControl("btnConfirmarClienteInsert");
            Panel pnlPesquisaClienteInsert = (Panel)fvwVenda.FindControl("pnlPesquisaClienteInsert");
            TextBox tbxvalorVendaInsert = (TextBox)fvwVenda.FindControl("tbxvalorVendaInsert");
            pnlPesquisaClienteInsert.Visible = false;

            VendaFn venda = new VendaFn();
            UsuarioFn usuario = new UsuarioFn();

            tbxCodigoVendaInsert.Text = venda.InserirVenda(usuario.ObterIdFuncionario(Membership.GetUser().UserName.ToString()), Convert.ToInt32(tbxCodigoClienteInsert.Text), Convert.ToInt32(ddlCategoriaVendaInsert.SelectedValue)).ToString();
            tbxvalorVendaInsert.Text = "0.00";

            btnConfirmarClienteInsert.Enabled = false;
        }

        protected void gvwListagemProdutoInsert_SelectedIndexChanged(object sender, EventArgs e)
        {
            VendaFn venda = new VendaFn();
            GridView gvwListagemProdutoInsert = (GridView)fvwVenda.FindControl("gvwListagemProdutoInsert");
            Produto pProduto = venda.ObterObjetoProduto(Convert.ToInt32(gvwListagemProdutoInsert.SelectedDataKey.Value));

            TextBox tbxCodigoProdutoInsert = (TextBox)fvwVenda.FindControl("tbxCodigoProdutoInsert");
            TextBox tbxProdutoInsert = (TextBox)fvwVenda.FindControl("tbxProdutoInsert");
            TextBox tbxUnidadeInsert = (TextBox)fvwVenda.FindControl("tbxUnidadeInsert");
            //TextBox tbxQuantidadeInsert = (TextBox)fvwVenda.FindControl("tbxQuantidadeInsert");
            TextBox tbxPrecoInsert = (TextBox)fvwVenda.FindControl("tbxPrecoInsert");
            //TextBox tbxvalorComissaoInsert = (TextBox)fvwVenda.FindControl("tbxvalorComissaoInsert");
            //TextBox tbxValorTotalInsert = (TextBox)fvwVenda.FindControl("tbxValorTotalInsert");

            tbxCodigoProdutoInsert.Text = pProduto.IdProduto.ToString();
            tbxProdutoInsert.Text = pProduto.Descricao.ToString();
            tbxUnidadeInsert.Text = pProduto.Unidade.ToString();
            tbxPrecoInsert.Text = pProduto.Preco.ToString();

        }

        protected void btnIncluirItemInsert_Click(object sender, EventArgs e)
        {
            TextBox tbxCodigoVendaInsert = (TextBox)fvwVenda.FindControl("tbxCodigoVendaInsert");
            GridView gvwItemVendaInsert = (GridView)fvwVenda.FindControl("gvwItemVendaInsert");
            GridView gvwListagemProdutoInsert = (GridView)fvwVenda.FindControl("gvwListagemProdutoInsert");
            TextBox tbxCodigoProdutoInsert = (TextBox)fvwVenda.FindControl("tbxCodigoProdutoInsert");
            TextBox tbxProdutoInsert = (TextBox)fvwVenda.FindControl("tbxProdutoInsert");
            TextBox tbxUnidadeInsert = (TextBox)fvwVenda.FindControl("tbxUnidadeInsert");
            TextBox tbxQuantidadeInsert = (TextBox)fvwVenda.FindControl("tbxQuantidadeInsert");
            TextBox tbxPrecoInsert = (TextBox)fvwVenda.FindControl("tbxPrecoInsert");
            TextBox tbxvalorComissaoInsert = (TextBox)fvwVenda.FindControl("tbxvalorComissaoInsert");
            TextBox tbxValorTotalInsert = (TextBox)fvwVenda.FindControl("tbxValorTotalInsert");
            TextBox tbxvalorVendaInsert = (TextBox)fvwVenda.FindControl("tbxvalorVendaInsert");

            VendaFn venda = new VendaFn();
            venda.InserirItemVenda(Convert.ToInt32(tbxCodigoProdutoInsert.Text), Convert.ToInt32(tbxCodigoVendaInsert.Text), Convert.ToInt32(tbxQuantidadeInsert.Text));

            tbxvalorVendaInsert.Text = venda.ObterObjetoVenda(Convert.ToInt32(tbxCodigoVendaInsert.Text)).ValorTotal.ToString();

            PopularParcelas();
            PreencherValorParcela();

            LimparCamposProdutoInsert();

            gvwListagemProdutoInsert.DataBind();
            gvwItemVendaInsert.DataBind();

        }

        private void PopularParcelas()
        {
            TextBox tbxCodigoVendaInsert = (TextBox)fvwVenda.FindControl("tbxCodigoVendaInsert");
            DropDownList ddlCategoriaVendaInsert = (DropDownList)fvwVenda.FindControl("ddlCategoriaVendaInsert");
            DropDownList ddlNumeroparcelasInsert = (DropDownList)fvwVenda.FindControl("ddlNumeroparcelasInsert");

            VendaFn venda = new VendaFn();

            string tipoVenda = ddlCategoriaVendaInsert.SelectedItem.Text.ToString();

            ArrayList parcelas = venda.NumeroParcelasMaximo(tipoVenda, Convert.ToDecimal(venda.ObterObjetoVenda(Convert.ToInt32(tbxCodigoVendaInsert.Text)).ValorTotal));
            object[] comboItems = new object[parcelas.Count];
            ddlNumeroparcelasInsert.Items.Clear();
            foreach (object item in parcelas)
            {
                ddlNumeroparcelasInsert.Items.Add(Convert.ToString(item));
            }
        }

        protected void btnLimparItemInsert_Click(object sender, EventArgs e)
        {
            LimparCamposProdutoInsert();
        }

        private void LimparCamposProdutoInsert()
        {
            TextBox tbxCodigoProdutoInsert = (TextBox)fvwVenda.FindControl("tbxCodigoProdutoInsert");
            TextBox tbxProdutoInsert = (TextBox)fvwVenda.FindControl("tbxProdutoInsert");
            TextBox tbxUnidadeInsert = (TextBox)fvwVenda.FindControl("tbxUnidadeInsert");
            TextBox tbxQuantidadeInsert = (TextBox)fvwVenda.FindControl("tbxQuantidadeInsert");
            TextBox tbxPrecoInsert = (TextBox)fvwVenda.FindControl("tbxPrecoInsert");
            TextBox tbxValorTotalInsert = (TextBox)fvwVenda.FindControl("tbxValorTotalInsert");

            tbxCodigoProdutoInsert.Text = String.Empty;
            tbxProdutoInsert.Text = String.Empty;
            tbxUnidadeInsert.Text = String.Empty;
            tbxQuantidadeInsert.Text = String.Empty;
            tbxPrecoInsert.Text = String.Empty;
            tbxValorTotalInsert.Text = String.Empty;
        }

        protected void gvwItemVendaInsert_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("Excluir"))
            {
                GridView gvwListagemProdutoInsert = (GridView)fvwVenda.FindControl("gvwListagemProdutoInsert");
                GridView gvwItemVendaInsert = (GridView)fvwVenda.FindControl("gvwItemVendaInsert");
                TextBox tbxCodigoVendaInsert = (TextBox)fvwVenda.FindControl("tbxCodigoVendaInsert");
                TextBox tbxvalorVendaInsert = (TextBox)fvwVenda.FindControl("tbxvalorVendaInsert");
                Int32 codigoVenda = Convert.ToInt32(tbxCodigoVendaInsert.Text);
                Int32 codigoProduto = Convert.ToInt32(e.CommandArgument);
                VendaFn venda = new VendaFn();
                venda.DeleteItemVenda(codigoVenda, codigoProduto);

                tbxvalorVendaInsert.Text = venda.ObterObjetoVenda(Convert.ToInt32(tbxCodigoVendaInsert.Text)).ValorTotal.ToString();
                
                PopularParcelas();
                PreencherValorParcela();

                gvwListagemProdutoInsert.DataBind();
                gvwItemVendaInsert.DataBind();
            }
        }

        protected void odsGridViewItemVendaInsert_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            TextBox tbxCodigoVendaInsert = (TextBox)fvwVenda.FindControl("tbxCodigoVendaInsert");
            if (tbxCodigoVendaInsert.Text != "")
            {
                e.InputParameters["IdVenda"] = tbxCodigoVendaInsert.Text;
            }
        }

        protected void btnPesquisarProdutoInsert_Click(object sender, EventArgs e)
        {
            GridView gvwListagemProdutoInsert = (GridView)fvwVenda.FindControl("gvwListagemProdutoInsert");
            gvwListagemProdutoInsert.DataBind();
            GridView gvwItemVendaInsert = (GridView)fvwVenda.FindControl("gvwItemVendaInsert");
            gvwItemVendaInsert.DataBind();
        }

        protected void tbxQuantidadeInsert_TextChanged(object sender, EventArgs e)
        {
            TextBox tbxQuantidadeInsert = (TextBox)fvwVenda.FindControl("tbxQuantidadeInsert");
            TextBox tbxPrecoInsert = (TextBox)fvwVenda.FindControl("tbxPrecoInsert");
            TextBox tbxValorTotalInsert = (TextBox)fvwVenda.FindControl("tbxValorTotalInsert");

            tbxValorTotalInsert.Text = (Convert.ToInt32(tbxQuantidadeInsert.Text) * Convert.ToDecimal(tbxPrecoInsert.Text)).ToString();

        }

        protected void ddlcategoriaVendaInsert_SelectedIndexChanged(object sender, EventArgs e)
        {

            PopularParcelas();
            PreencherValorParcela();
        }

        protected void ddlNumeroparcelasInsert_SelectedIndexChanged(object sender, EventArgs e)
        {
            PreencherValorParcela();
        }

        private void PreencherValorParcela()
        {
            DropDownList ddlNumeroparcelasInsert = (DropDownList)fvwVenda.FindControl("ddlNumeroparcelasInsert");
            TextBox tbxCodigoVendaInsert = (TextBox)fvwVenda.FindControl("tbxCodigoVendaInsert");
            TextBox tbxValorParcelaInsert = (TextBox)fvwVenda.FindControl("tbxValorParcelaInsert");
            VendaFn fnVenda = new VendaFn();
            Venda pVenda = fnVenda.ObterObjetoVenda(Convert.ToInt32(tbxCodigoVendaInsert.Text));

            if (pVenda != null)
            {
                tbxValorParcelaInsert.Text = fnVenda.CalcularValorParcela((decimal)pVenda.ValorTotal, Convert.ToInt32(ddlNumeroparcelasInsert.SelectedValue)).ToString();
            }
        }

        protected void bntConfirmarFormaPagamentoInsert_Click(object sender, EventArgs e)
        {
            DropDownList ddlNumeroparcelasInsert = (DropDownList)fvwVenda.FindControl("ddlNumeroparcelasInsert");
            TextBox tbxCodigoVendaInsert = (TextBox)fvwVenda.FindControl("tbxCodigoVendaInsert");
            TextBox tbxValorParcelaInsert = (TextBox)fvwVenda.FindControl("tbxValorParcelaInsert");
            Panel pnlPesquisaProdutoInsert = (Panel)fvwVenda.FindControl("pnlPesquisaProdutoInsert");
            
            VendaFn fnVenda = new VendaFn();
           
            if (fnVenda.InserirParcela(Convert.ToInt32(tbxCodigoVendaInsert.Text), Convert.ToInt32(ddlNumeroparcelasInsert.SelectedValue), Convert.ToDecimal(tbxValorParcelaInsert.Text)))
                pnlPesquisaProdutoInsert.Visible = false;
            
            GridView gvwParcelaInsert = (GridView)fvwVenda.FindControl("gvwParcelaInsert");
            gvwParcelaInsert.DataBind();
        }

        protected void odsParcelaInsert_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            TextBox tbxCodigoVendaInsert = (TextBox)fvwVenda.FindControl("tbxCodigoVendaInsert");
            if (tbxCodigoVendaInsert.Text != "")
            {
                e.InputParameters["IdVenda"] = tbxCodigoVendaInsert.Text;
            }
        }
    }
}